package com.example.designpattern.singleExample;

/**
 * @program: DesignPattern
 * @description: 内部类实现单例模式
 * @author: zhangjt
 * @create: 2024-11-14 14:56
 **/
public class InternalCreateBean {
    // 静态内部类在类加载的时候不会立即加载，只有调用getInstance()方法时才会加载，并且只会被加载一次，所以是线程安全的。

    // 1.私有化构造器
    private InternalCreateBean(){}

    // 2.定义一个静态内部类
    private static class InternalCreateBeanHolder{
        private static final InternalCreateBean INSTANCE = new InternalCreateBean();
    }

    // 3.提供公共的静态方法，返回内部类的实例对象
    public static InternalCreateBean getInstance(){
        return InternalCreateBeanHolder.INSTANCE;
    }
}
